From 4da59282e0ababf2eeda9b2f70d708db47626971 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Fri, 25 Apr 2008 13:27:19 +0100 Subject: [PATCH] shadow: Fix TLB flushing in the second pass of sh_prealloc() in the case where multiple vcpus use the same pagetables. Signed-off-by: Tim Deegan --- xen/arch/x86/mm/shadow/common.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c index 1280ef695b..3769721198 100644 --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -781,7 +781,6 @@ static void _shadow_prealloc( struct vcpu *v, *v2; struct list_head *l, *t; struct shadow_page_info *sp; - cpumask_t flushmask = CPU_MASK_NONE; mfn_t smfn; int i; @@ -819,12 +818,11 @@ static void _shadow_prealloc( { shadow_unhook_mappings(v, pagetable_get_mfn(v2->arch.shadow_table[i])); - cpus_or(flushmask, v2->vcpu_dirty_cpumask, flushmask); /* See if that freed up enough space */ if ( space_is_available(d, order, count) ) { - flush_tlb_mask(flushmask); + flush_tlb_mask(d->domain_dirty_cpumask); return; } } -- 2.30.2